package ar.com.tallerdos.smartdinner.util;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import ar.com.tallerdos.smartdinner.model.Identity;

public class StringUtils {

    public static String generarDescripcion(Collection<? extends Object> col, 
	    String preSing, String prePlur, String post, String defaultMsg, Descriptible d) {
	
	if (d == null) {
	    d = new Descriptible() {	        
	        @Override
	        public String getDescripcion(Object o) {
	    		return o.toString();
	        }
	    };
	}
	
	if (col == null) {
	    return "";
	} else if (col.size() > 0) {
	    List<Object> lista = new ArrayList<Object>();
	    lista.addAll(col);
	    String descripcion = (lista.size() > 1 ? prePlur : preSing);
	    for (int i = 0; i < lista.size(); i++) {
		Object o = lista.get(i);
		if (i == lista.size() - 2) {
		    descripcion += d.getDescripcion(o) + " y ";
		} else if (i == lista.size() - 1) {
		    descripcion += d.getDescripcion(o);
		} else {
		    descripcion += d.getDescripcion(o) + ", ";
		}
	    }
	    return descripcion + post;
	} else {
	    return defaultMsg;
	}
    }
    
    public static String concatenarIds(Collection<? extends Identity> col, String separador) {
	String identitiesIds = "";
	for (Identity identity : col) {
	    identitiesIds += identity.getId() + separador;
	}
	if (identitiesIds.length() > 0) {
	    identitiesIds = identitiesIds.substring(0, identitiesIds.length() - separador.length());
	}
	return identitiesIds;
    }
}
